package objetos.powerUps;

import movimiento.Posicion;
import objetos.Energia;
import objetos.aeronaves.Algo42;
import org.jdom.*;

/*
 * Clase que modela los power up de energ�a.
 */
public class DeEnergia extends PowerUp {
	private Energia contenido;

	public DeEnergia(int x, int y, Energia energia) {
		super(x, y);
		this.contenido = energia;
	}

	public DeEnergia(Posicion posicion, Energia energia) {
		super(posicion);
		this.contenido = energia;
	}

	public DeEnergia(Posicion posicion, int cantidadEnergia) {
		this(posicion, new Energia(cantidadEnergia));
	}

	public DeEnergia(int x, int y, int cantidadEnergia) {
		this(x, y, new Energia(cantidadEnergia));
	}

	@Override
	public void darBeneficioA(Algo42 algo42) {
		algo42.recuperarEnergia(contenido);
	}

	public void setContenido(Energia energia) {
		this.contenido = energia;
	}

	public Energia getContenido() {
		return contenido;
	}

	/* Persistencia */

	/* Constructor a partir de nodoXML */
	public DeEnergia(Element nodo) {
		this(Integer.parseInt(nodo.getAttributeValue("posicionX")), Integer
				.parseInt(nodo.getAttributeValue("posicionY")), new Energia(
				nodo.getChild("energia")));
	}

	/* NodoXML a partir de instancia */
	@Override
	public Element obtenerNodo() {
		Element nodo = new Element("deEnergia");
		nodo.setAttribute(new Attribute("posicionX", Integer.toString(this
				.getPosicion().getEnX())));
		nodo.setAttribute(new Attribute("posicionY", Integer.toString(this
				.getPosicion().getEnY())));
		nodo.addContent(this.getContenido().obtenerNodo());
		return nodo;
	}

}
